Skip to main content
Version: 1.0.4

Transfer Money V1

The Unified Payment API serves as a single entry point for initiating real-time and fallback payments through multiple supported networks, including FedNow, TCH, and ACH. It abstracts the complexity of routing logic and network compatibility checks, allowing clients (such as mobile / middleware systems) to initiate payments with minimal integration effort.

Key Features:

  • Unified interface for multi-rail payments (FedNow, TCH, ACH)

  • Automatic routing based on beneficiary bank support

  • Built-in fallback mechanism if real-time networks are unavailable

Typical Use Case:

Client system (Mobile / Middleware) send a payment request to the XD Ledger via this API. The ledger then parses the request, determines the optimal payment rail, and processes the transaction end-to-end.

Method: POST

{{URL}}/jsonrpc

Example

Request Parameters
ParameterDescription
method

Mandatory
String
Method Name must be "TransactionService.Transfermoneyv2"
id

Optional
String
Unique identifier for the request.
Sample Value : "1"
paramsObject
payloadObject
Root Object containing the payment instruction details.
purpose

Optional
String
Describes the purpose of the transaction.
transactionAmount

Mandatory
Object
amount

Mandatory
String
Value of the transaction must be in Cents
Sample Value: "220"
currency

Mandatory
String
Currency type used for the transaction
Sample Value: "USD"
creditor

Mandatory
Object
userTypeString
Specifies the type of creditor
Constant Value : "INDIVIDUAL / BUSINESS"
identificationType

Optional
String
Type of identification
Constant Value : " SSN / TIN"
identification

Optional
String
Unique identifier of the identification provided by creditor
Sample Value: "89900200002"
firstName

Optional
String First name of the creditor (INDIVIDUAL) or Name of the Company (BUSINESS).
Sample Value - INDIVIDUAL : "James"
Sample Value - BUSINESS : "XYZ LTD"
middleName

Optional
String
Middle name of creditor
Sample Value: "Edward"
lastName

Optional
String
Last name of creditor
Sample Value: "Harrington"
creditorAccount

Mandatory
Object
identificationType

Optional
String
Type of account identification
Sample Value: "ACCOUNT_NUMBER"
identificationType2

Optional
String
Type of account
Constant Values : " CHECKING / SAVINGS""
identification

Mandatory
String
Account number of the creditor's account
Sample Value: "200522479517839"
institution

Mandatory
Object
name

Optional
String
Name of the creditor bank
Sample Value: "THE BANK OF NEW YORK MELLON"
identificationType

Optional
String
Identification type of bank
Sample Value: "ABA"
identification

Mandatory
String
Bank's identification number
Sample Value: "101110802"
debtorPostalAddress

Optional
Object
addressTypeString
Type of address
Sample Value: "HOUSE"
addressLine1String
First line of the address
Sample Value: "3745 SW anamaker RD"
addressLine2String
Second line of the address
Sample Value: "Suite C"
cityString
City of the debtor's address
Sample Value: "Topeka"
stateString
State of the debtor's address
Sample Value: "KS"
zipCodeString
Postal code of the debtor's address
Sample Value: "66610"
countryCodeString
Country code in numeric form
Sample Value: "840"
nationalityString
Nationality of the debtor
Sample Value: "USA"
debtorContact

Optional
Object
primaryEmailString
Primary email address for the debtor
Sample Value: "john@gmail.com"
primaryPhoneString
Primary phone number for the debtor
Sample Value: "7850010001"
debtorAccount

Mandatory
Object
identificationType

Optional
String
Type of account identification
Sample Value: "ACCOUNT_NUMBER"
identification

Mandatory
String
Account number for the debtor's account
Sample Value: "200401278247450"
institution

Mandatory
Object
name

Optional
String
Name of debtor bank
Sample Value: "ABC BANK"
identificationType

Optional
String
Type of bank identification
Sample Value: "ABA"
identification

Mandatory
String
Bank's identification number
Sample Value: "124303298"
apiObject
API credentials and metadata.
credential

Mandatory
String
Basic (space) [("<Username>:<apiKey>") as Base64 encoded value] to be provided
Sample Value: "Basic amVnYW4uckBuZXR4ZC5jb206ZmE3NTg4NzYyMDUxNDRhM2FmZTRlMDJiNzIzOTM2M2E="
signature

Mandatory
String
Sign the request payload (params.payload) using private key.
Sample Value: "MEQCIAbpxHpdOyBEVlmxPYv7m4Z1OvWJJYw7g7u3GE3T9nmvAiBjKHckSvb1M6O4t7FeWsn2z9Y3dMeYn3HyX/k28ek/Dw=="
apiKey

Optional
String
API key is provided at the time of device registration.
Sample Value : "fa758876205144a3afe4e02b7239363a"
keyId

Mandatory
String
Key ID is provided at the time of device registration.
Sample Value : "41199"

curl --location '{{URL}}/jsonrpc' \
--header 'Content-Type: application/json' \
--data-raw '{"method":"TransactionService.Transfermoney","id":"1","params":{"payload":{"purpose":"wages of June month included with loan repayment","transactionAmount":{"amount":"50000","currency":"USD"},"creditor":{"userType":"INDIVIDUAL","identification":"748514523","identificationType":"SSN","firstName":"Zusen","middleName":"Mark","lastName":"Linda"},"creditorAccount":{"identification":"252511012545002","identificationType":"ACCOUNT_NUMBER","identificationType2":"CHECKING","institution":{"name":"Indo East","identification":"011002550","identificationType":"ABA"}},"debtorPostalAddress":{"addressType":"HOUSE","addressLine1":"La Maison","addressLine2":"16 Washington Mews","city":"Brooklyn","state":"NY","zipCode":"11201","countryCode":"021","nationality":"USA"},"debtorContact":{"primaryEmail":"zusenlamark@yahoo.com","primaryPhone":"+1-9877845785"},"debtorAccount":{"identification":"200515264448391","identificationType":"ACCOUNT_NUMBER","institution":{"name":"ABC BANK","identification":"124303298","identificationType":"ABA"}}},"api":{"credential":"Basic bmF2eWEubitlbXBAbmV0eGQuY29tOmY1OWIwY2NlOTU4ZTQ1YTc4MGVhZWIzYWVjOWVjZDAx","signature":"MEUCIQCxBNm8iCJ0e2rwstvqIuMWQagXao71UC4qTR9HzmYIeQIgVvi2DHVH2qGpkMwmZQIMstZDB/dou6zmraBP8zuQCIY=","apiKey":"f59b0cce958e45a780eaeb3aec9ecd01","keyId":"348076"}}}'

Request Body


{
"method": "TransactionService.Transfermoney",
"id": "1",
"params": {
"payload": {
"purpose": "Loan Account number - 011011258698745",
"transactionAmount": {
"amount": "220",
"currency": "USD"
},
"creditor": {
"userType": "INDIVIDUAL",
"identificationType": "SSN",
"identification": "89900200002",
"firstName": "James",
"middleName": "Edward",
"lastName": "Harrington"
},
"creditorAccount": {
"identificationType": "ACCOUNT_NUMBER",
"identificationType2": "CHECKING",
"identification": "200522479517839",
"institution": {
"name": "THE BANK OF NEW YORK MELLON",
"identificationType": "ABA"
"identification": "101110802",
}
},
"debtorPostalAddress": {
"addressType": "HOUSE",
"addressLine1": "3745 SW anamaker RD",
"addressLine2": "Suite C",
"city": "Topeka",
"state": "KS",
"zipCode": "66610",
"countryCode": "840",
"nationality": "USA"
},
"debtorContact": {
"primaryEmail": "jane@gmail.com",
"primaryPhone": "7850010001"
},
"debtorAccount": {
"identificationType": "ACCOUNT_NUMBER",
"identification": "200401278247450",
"institution": {
"name": "ABC BANK",
"identificationType": "ABA"
"identification": "124303298",
}
}
},
"api": {
"credential": "Basic amVnYW4uckBuZXR4ZC5jb206ZmE3NTg4NzYyMDUxNDRhM2FmZTRlMDJiNzIzOTM2M2E=",
"signature": "{{signature}}",
"apiKey": "fa758876205144a3afe4e02b7239363a",
"keyId": "41199"
}
}
}

Response: 200

Response Parameters
ParameterDescription
id
Mandatory
String
Unique response id
Sample Value: "1"
result
Mandatory
Object
status
Mandatory
String
Status of the transaction
Sample Value: "COMPLETED"
Possible values: "COMPLETED", "FAILED"
referenceID
Mandatory
String
Unique reference id of the transaction
Sample Value: "b3d721e8f36a40b58e3caf3509e9508c"
supportedChannel
Mandatory
String
Channel through which transaction is processed
Sample Value: "TCH"
Possible values: "TCH", "FEDNOW", "ACH", "WIRE"
transactionType
Mandatory
String
Type of transaction
Sample Value: "RTP_OUT"
Possible values: "RTP_OUT", "CCT_OUT", "ACH_OUT", "WIRE_OUT"
jsonrpc
Mandatory
String
RPC Version
Sample Value: "2.0"

Response Body


{
"id": "1",
"result": {
"status": "COMPLETED",
"referenceID": "b3d721e8f36a40b58e3caf3509e9508c",
"supportedChannel": "TCH",
"transactionType": "RTP_OUT"
},
"jsonrpc": "2.0"
}

Error Codes

Error Codes
CodeMessageRecommended Action
ACCOUNT_NOT_EXISTDebtor Account doesn't ExistPlease enter a valid Account Number
ACCOUNT_NOT_MATCH_WITH_CRJ_ACCOUNTCRJ account number does not match with parent account numberPlease review the Sub Account and Parent Account details
ACCOUNT_NOT_MATCHED_WITH_LEGALREPAccount not matched with legalrepLegalrep do not have access to this account. Please contact Support.
BAD_INPUTCreditorAccount is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditorAccount.Identification is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditorAccount.Institution is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditorAccount.InstitutionId is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTDebtorAccount is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTDebtorAccount.Identification is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTDebtorAccount.Institution is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTDebtorAccount.InstitutionId is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTTransactionAmount is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTAmount is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCurrency is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTDebitorAccount is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTDebitorAccount.IdentificationType is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTDebitorAccount.IdentificationValue is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTFee Amount is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTFee Currency is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTTax Amount is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTTax Currency is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTFee subsidiary source account doesn't have sufficient balancePlease check the error message and fix the request payload
BAD_INPUTRequest is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTReferenceId is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTProcessId is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTFor wire transfers, Amount field should not be more then 12 digitsPlease check the error message and fix the request payload
BAD_INPUTDebitor AccountNumber is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTProduct account is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditor Account is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditorAccount InstitutionId is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditorAccount Party is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditorAccount Party Name is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTrequestID is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTapplicationCode is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTticketName is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTcreatedBy is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTpayloadJSON is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTstatus is invalid or missingPlease check the error message and fix the request payload
CANNOT_PROCESS_TRANSACTIONTransaction cannot be processTransaction Type is not supported. Please contact Support with the Error message
DUPLICATE_REFERENCE_IDA request with ReferenceId already existPlease Use a unique reference/request ID
FED_NOW_PROFILE_SETTINGS_NOT_FOUNDFednow profile Settings not found for the AccountPlease Reach out to Support and share this error message
IN_ACTIVE_ACCOUNTAccount is + statusYour Account is "INACTIVE". Please Contact Support
IN_ACTIVE_CUSTOMERCustomer is not in active stateYour Customer Profile is "INACTIVE". Please Contact Support
INSUFFICIENT_BALANCEInsufficient [balance] in account [acc no]Please Review account limits or balances
INTERNAL_ERRORPlease contact the system administrator and try again later.Temporary error - Please try again later
INVALID_CURRENCYAccount Currency and Instructed Currency mismatchedPlease fix the Currency Code and Try again
INVALID_POSTED_DATEInvalid Posted Date. Must be RFC3339 FormatPlease Fix the Posted Date Format and Try again
NOT_FOUND_ACCOUNTAccount not foundPlease fix the payload with the Correct Account Number
NOT_FOUND_APPLICATIONApplication not foundPlease fix the payload with the Correct Application ID
NOT_FOUND_CUSTOMERCustomer not foundPlease fix the payload with the Correct Customer ID
NOT_FOUND_INSTITUTIONInstitution not found in Network for Payment ChannelPlease fix the payload with the Correct Institution ID
NOT_FOUND_PRODUCTProduct not foundPlease fix the payload with the relevant Product Name
NOT_FOUND_PROGRAM_CHANNELProgram channel setting not foundPlease fix the payload with the Correct Program Channel
NOT_FOUND_TRANSACTIONTransaction not foundPlease Reach out to Support and share this error message
PER_DAY_MONEY_IN_LIMIT_BREACHEDper day money_in limit breachedPlease Review account limits or balances
PER_DAY_MONEY_IN_LIMIT_BREACHED_FOR_RECEIVERper day money_in limit breached for receivePlease Review account limits or balances
PER_DAY_MONEY_OUT_LIMIT_BREACHEDper day money_out limit breachedPlease Review account limits or balances
PER_DAY_TRANSACTION_LIMIT_BREACHEDper day transaction limit breachedPlease Review account limits or balances
PER_MONTH_MONEY_IN_LIMIT_BREACHEDper month money_in limit breachedPlease Review account limits or balances
PER_MONTH_MONEY_OUT_LIMIT_BREACHEDper month money_out limit breachedPlease Review account limits or balances
PER_MONTH_TRANSACTION_LIMIT_BREACHEDper month transaction limit breachedPlease Review account limits or balances
PER_TRANSACTION_LIMIT_BREACHEDper transaction limit breachedPlease Review account limits or balances
PER_YEAR_TRANSACTION_LIMIT_BREACHEDper year transaction limit breachedPlease Review account limits or balances
RTP_PROFILE_SETTINGS_NOT_FOUNDRTP Profile Settings not found for the AccountPlease Reach out to Support and share this error message
SUPPORTED_CHANNEL_UNAVAILABLESupported channel unavailablePlease Reach out to Support and share this error message
TCH_REF_BALANCE_EXCEEDED-Please Reach out to Support and share this error message
TRANSACTION_NOT_SUPPORTEDtransaction not supportedPlease Verify if the requested action is allowed or supported
TXN_NOT_ALLOWED_FOR_NON_ADDRESSABLE_ACCNot allowed Transaction for non-addressablePlease Verify if the requested action is allowed or supported
WIRESETTING_NOT_FOUNDWire Settings not found for the AccountPlease Reach out to Support and share this error message